// 定义pinia 用来保存共享的信息(登录相关)
// 从Pinia库中导入defineStore函数，这个函数用于创建新的状态存储
import { defineStore } from "pinia";

// admin状态，用户状态
export const adminStore = defineStore( //创建并导出一个名为adminStore的状态存储
    'admin', //声明一个状态，状态名称为admin，是这个状态存储的唯一标识id
    {
        state:()=>{ //设置共享数据，定义状态的初始数据，这里返回一个空对象，后续可以添加用户信息相关字段 
            return {}
        },
        actions: { //修改共享数据，定义可以修改状态的方法
            update(admin) { //更新admin状态数据
                this.admin = admin //this.admin：状态中存储的admin数据
            }
        }
    }
)

// 登录状态
export const tokenStore = defineStore( //创建并导出一个名为tokenStore的状态存储，用于管理登录令牌
    'token', //这个状态存储的唯一标识ID
    {
        state:()=>{ //定义一个初始状态，包含一个token字段
            return {token:localStorage.getItem('token')} //从浏览器本地存储中获取之前保持的token，实现页面刷新后仍能保留登录状态
        },
        actions: {
            update(token) {
                this.token = token; //更新状态中的token值
                localStorage.setItem('token',token) //将新的token保存到浏览器本地存储，实现持久化存储
            }
        }
    }
)